package sohsite.pelada.servlets;

import java.io.IOException;
import java.util.Collection;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import sohsite.excecao.EntradaInexistenteException;
import sohsite.excecao.MensagensJSP;
import sohsite.fachada.SistemaSohSite;
import sohsite.pelada.jogo.Jogo;
import sohsite.pelada.pelada.Pelada;
import sohsite.pelada.peladeiro.Peladeiro;
import sohsite.pelada.peladeiroJogo.PeladeiroJogo;

public class ServletRemoverPeladeiro extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public void doPost (HttpServletRequest req,
			HttpServletResponse res)
	throws ServletException, IOException
	{
		SistemaSohSite sohSite = SistemaSohSite.getInstancia();

		int idPeladeiro = Integer.parseInt(req.getParameter("idPeladeiro"));
		Peladeiro peladeiro = null;
		Pelada pelada = null;
		String url = req.getParameter("url");
		Collection<PeladeiroJogo> peladeirosJogo = null;		


		try {
			peladeiro = sohSite.getControladorPelada().consultarPeladeiro(idPeladeiro);
		} catch (EntradaInexistenteException e) {
			res.sendRedirect("./jsp/mensagem.jsp"+ "?idMensagem=" + MensagensJSP.PeladeiroInexistente);
			return;
		}
		pelada = peladeiro.getPelada();
		peladeirosJogo = sohSite.getControladorPelada().consultarPeladeiroJogosPorPeladeiro(peladeiro);

		if(peladeirosJogo!= null && !peladeirosJogo.isEmpty()){
			for(PeladeiroJogo peladeiroJogo : peladeirosJogo){
				Jogo jogo = peladeiroJogo.getJogo();
				jogo.getPeladeirosJogo().remove(peladeiroJogo);
				try {
					sohSite.getControladorPelada().atualizarJogo(jogo);
				} catch (EntradaInexistenteException e) {
					res.sendRedirect("./jsp/mensagem.jsp"+ "?idMensagem=" + MensagensJSP.JogoInexistente);
					return;
				}
			}
		}

		pelada.getPeladeiros().remove(peladeiro);
		sohSite.getControladorPelada().atualizarPelada(pelada);			

		int idPelada = pelada.getId();
		res.sendRedirect(url + "?idPelada=" + idPelada );
	}
}